<StrictMode>
🧑🏻💻 StrictMode
<StrictMode>
를 사용하면 개발 중에 컴포넌트에서 흔히 발생하는 버그를 조기에 발견할 수 있다.
✅ StrictMode 문법
<StrictMode>
<App />
</StrictMode>
- 개발 전용 동작을 활성화 한다.
StrictMode
는 주로 사이드 이펙트와 렌더링 동작에 관련된 문제점을 감지한다.- 애플리케이션의 어떤 컴포넌트에 대해서든
<StrictMode>
로 감싸 활성화 할 수 있다.
🧑🏻💻 알고 가기
✅ StrictMode 사용 시 활성화 되는 것들
- 불완전한 렌더링으로 인한 버그를 찾기 위해 한 번 더 렌더링한다.
- Effect에 클린 함수가 없어 발생한 버그를 찾기위해 Effect를 한 번 더 실행한다.
- 지원 중단된 API의 사용 여부를 확인한다.
✅ 주의 사항
- 개발 환경에서만 실행된다.
StrictMode
는 props가 없다.<StrictMode>
로 감싼 트리 내부에서 Strict 모드를 해제할 수 있는 방법은 없다.
🧑🏻💻 활용 및 생각할 거리
✅ 왜 순수 함수들은 두 번 호출 될까?
- React는 작성하는 모든 컴포넌트가 순수 함수라고 가정한다. 즉, 작성하는 React 컴포넌트는 동일한 입력(props, state, context)이 주어졌을 때 항상 동일한 JSX를 반환해야 한다.
- 따라서
<StrictMode>
는 개발 환경에서 실수로 작성한 불순한 코드를 찾을 수 있도록 다음의 일부 함수(순수 함수만)를 두 번 호출한다.
✏️ 두 번 호출되는 순수 함수들
useState
,set
함수,useMemo
,useReducer
에 전달한 함수constructor
,render
,shouldComponentUpdate
와 같은 일부 클래스 컴포넌트 메서드